/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_Studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#pragma once


#include <A_引擎/引擎.h>


class C_操作记录 {
	
public:
	C_操作记录(uint64 操作类型);

	virtual uint8 f_撤销() { return m_撤销步数; };
	virtual uint8 f_重做() { return m_重做步数; };

	static uint64 f_get最后操作类型();

	void f_执行步数(uint8 重做步数, uint8 撤销步数) {
		m_重做步数 = 重做步数;
		m_撤销步数 = 撤销步数;
	}
protected:
	uint64 m_操作类型;

	uint8 m_重做步数;
	uint8 m_撤销步数;
};



E_事件是否传递 f_操作记录_全局撤销(C_Widget* self, E_键位执行状态 状态);
E_事件是否传递 f_操作记录_全局重做(C_Widget* self, E_键位执行状态 状态);


void f_操作记录_销毁所有记录();




